//
//  SwiftMainVC.swift
//  testTableView
//
//  Created by LYJ on 2019/9/20.
//  Copyright © 2019 LYJ. All rights reserved.
//

import Foundation
import UIKit
import SnapKit

//UIViewController需要导入UIKit
class MainSwiftVC: UIViewController,UITableViewDelegate,UITableViewDataSource{
    
    //MARK: life cycle
    override func loadView() {
        super.loadView()
        self.view.backgroundColor = UIColor.orange
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.addSubview(mainTableView)
        viewsLayout()
        fetchData()
        mainTableView.reloadData()
        
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
    //MARK: UITableViewDataSource
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1;
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataArr.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        var cell:SwiftMainListCell? = tableView.dequeueReusableCell(withIdentifier: "cellId") as? SwiftMainListCell
        if cell == nil {
            cell = SwiftMainListCell.init(style: UITableViewCell.CellStyle.default, reuseIdentifier: "cellId")
            cell?.selectionStyle = UITableViewCell.SelectionStyle.none
//            cell?.accessoryType = UITableViewCell.AccessoryType.disclosureIndicator
        }
        
        cell?.configureCellWithData(dataDic: dataArr[indexPath.row] as! NSDictionary)
        
        return cell!
    }
    
    //MARK: UITableViewDelegate
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return UITableView.automaticDimension
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return HEIGHT_PRO(X: 30)
    }
    
    func tableView(_ tableView: UITableView, estimatedHeightForFooterInSection section: Int) -> CGFloat {
        return HEIGHT_PRO(X: 50)
    }
    
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let view = UIView.init(frame: CGRect.init(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))
        view.backgroundColor = UIColor.red
        return view
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print("点击了",indexPath.row)
    }
    
    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return true
    }
    
    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
        print("左滑")
    }
    //MARK: DataSource
    func fetchData() {
        dataArr.addObjects(from: [["userName":"zhang",
          "introduce":"123242144124"],
        ["userName":"zhang1",
          "introduce":"123242144124123412324214412312312313131231313123141412515234234242342424242342424242424224242323423242342424242242424242342424241232421441231231231313123131312314141251523423424234242424234242424242422424232342324234242424224242424234242424123242144123123123131312313131231414125152342342423424242423424242424242242423234232423424242422424242423424242"],
        ["userName":"zhang2",
          "introduce":"15453412324214412412324214412312312313131231313123141414"],
        ["userName":"zhang3",
          "introduce":"146323242144124"],
        ["userName":"zhang4",
          "introduce":"74574123242144123123123131312313131231414125152342342423424242423424242424242242423234232423424242422424242423424242422124"],
        ])
    }
    
    
    //MARK: 懒加载
    lazy var mainTableView: UITableView = {
        let mainTableView = UITableView.init(frame: CGRect.zero,
                                             style: UITableView.Style.grouped)
        mainTableView.separatorStyle = UITableViewCell.SeparatorStyle.none
        mainTableView.delegate = self
        mainTableView.dataSource = self
        return mainTableView
    }()
    
    lazy var dataArr : NSMutableArray = {
        var arr:NSMutableArray = NSMutableArray.init()
        return arr
    }()
    
    //MARK: Layout
    func viewsLayout() {
        mainTableView.snp.makeConstraints { (make) in
            make.size.equalTo(self.view)
        }
    }
    
}
